$NG.AllReady(function (page, { useValuesChange, useUpdateRow,useUpdateRows }) {

    //获取控件
    var form = $NG.getCmpApi("p_form_equipment_list_split");
    var grid = $NG.getCmpApi("p_form_equipment_split_d");
    const dataMaps_key= {}
    //表体增行时设置默认值，当表头u_split_rate变化时，更新所有明细数据
    useValuesChange(({ args }) => {
        console.log('useValuesChange is reayd');
        console.log(args[0]);
        var u_split_rate = $NG.getCmpApi("p_form_equipment_list_split").getItem("u_split_rate").getValue()
        var grid = $NG.getCmpApi("p_form_equipment_split_d");
        // 获取表体数据
        var data = grid.getData(); // 假设这个方法能获取到表体数据
        console.log("切分获取表格数据", data);
        // 遍历数据并设置 u_split_rate 为 1
        // data.forEach(function (item) {
        //     item.u_split_rate = u_split_rate; // 设置 u_split_rate 为 1
        //     sum(item)
        // });
        data.forEach(item=>{
            item.u_split_rate = form.getItem("u_split_rate").getValue()
            sum(item)
        })
        const _data = [...data]
        grid.clearRows().then(()=>{
            grid.addRows(_data)
        })
        
    }, "p_form_equipment_list_split.u_split_rate");

    useUpdateRow(({args})=>{
        sum(args[0])
    },"p_form_equipment_split_d")
    useUpdateRows(({args})=>{
        console.log(`表格新增监听`, args);
        var u_split_rate = $NG.getCmpApi("p_form_equipment_list_split").getItem("u_split_rate").getValue()
        args[0].forEach(function (item) {
            item.u_split_rate = u_split_rate; // 设置 u_split_rate 为 1
        });
        grid.refreshView()
    })
    setInterval(()=>{
        try{
            if(grid.getData().length !== dataMaps_key['danjv']){
                dataMaps_key['danjv'] = grid.getData().length
                const data = grid.getData()
                data.forEach(item =>{
                    sum(item)
                })
                console.log('可能发生了单据引用');
            }
        } catch(err){}
    },500)
    function sum(item){
        // 原未税单价 = 原含税单价 / （1+税率）
        item.u_ori_prc = Number(item.u_ori_prc_vat) / (1+Number(item.u_tax_rate))
        // 切分含税单价 = 切分比例 * 原含税单价
        item.u_split_prc_vat = Number(item.u_ori_prc_vat)*Number(item.u_split_rate)
        // 切分未税单价 = 切分含税单价 / （1+税率）
        item.u_split_prc = (Number(item.u_ori_prc_vat)*Number(item.u_split_rate)) / (1+Number(item.u_tax_rate))
        //切分含税金额
        item.u_split_amt_vat = (Number(item.u_qty) || 0) * (Number(item.u_split_prc_vat) || 0)
        // 切分未税金额 = 数量 * （切分含税单价 / （1 + 税率））
        item.u_split_amt = Number(item.u_qty)*((Number(item.u_ori_prc_vat)*Number(item.u_split_rate)) / (1+Number(item.u_tax_rate)))
        // 切分税额 = 切分未税金额 * 税率， 将切分未税金额的计算公式带入可得：切分税额 = 数量 * （切分含税单价 /（1 + 税率）） * 税率
        item.u_tax_amt = Number(item.u_qty)*(Number(item.u_split_prc_vat) / (1+Number(item.u_tax_rate))) * Number(item.u_tax_rate)
        grid.refreshView()
    }
});

